package design_pattern.single;

/**
 * @Package: design_pattern.single
 * @ClassName: SingleTon01
 * @Author: x2606
 * @CreateTime: 2022/3/10 21:15
 * @Description: 单例模式-饿汉式
 */

//饿汉式
//往往是重要的对象，饿汉式可能导致创建了对象，但是还未使用。
public class SingleTon01 {
    public static void main(String[] args) {
        System.out.println(Wife.getInstance().getName());
    }
}
//只能有一个老婆
class Wife{
    private String name;
    //如何保障只有一个实例

    //2.在类内部直接调用(为了在静态方法中调用，必须使用static修饰)
    private static Wife wife=new Wife("老婆");
    //1.构造器私有化，防止别人调用
    private Wife(String name) {
        this.name = name;
    }
    //3.提供一个公共的static方法，返回唯一构造的对象
    public static Wife getInstance(){
        return wife;
    }

    public String getName() {
        return name;
    }
}
